Many storage modules contain a controller and one or more memory units (e.g., NAND dies). When the storage module boots up, the storage module performs several functions, such as attempting to find the last written page in each of the open blocks in memory. To find the last written page, the controller can perform a binary search technique in which the controller reads various pages in the open block in a guess-and-check fashion until it finds the last written page. In this process, the controller commands the memory unit to read a certain page of data. In response to this command, the memory unit senses the memory cells in the page and stores them in latches in the memory unit. The controller then reads the data out of the latches (a process known as “toggling”) and counts the number of 0s and/or 1s in the read-out data and compares the number to some threshold to determine whether or not that page was written with data. Since pages are typically written sequentially in the block, the controller can follow a “funnel” approach in which the controller reads pages in various locations in the block (e.g., half way down the block, then a quarter way down the block, then an eighth way down the block, etc.) until the controller finds the last written page. This process is repeated for each open block in the memory. Once the last written page is located for each open block, the storage module is ready to accept commands from the host controller. Typically, a storage module will have a target boot time (e.g., 40 ms) from power on reset to being able to accept the first host command.